package menus.menusBourse;

import java.util.ArrayList;

import menus.Menu;
import metier.utilisateur.Annonce;
import controleur.Controleur;

public class FicheAnnonce extends Menu {

	private Annonce ann;

	public FicheAnnonce(Annonce annonce) {
		super();
		this.ann = annonce;
		nomMenu = "Fiche d'une annonce";
		leMenu = new ArrayList<String>();
		if (annonce.isPropreAnnonce(Controleur.utilisateurCourant)) {
			leMenu.add("Modifier l'Annonce");
		}
		if (Controleur.utilisateurCourant.isSalarie()) {
			leMenu.add("Supprimer l'Annonce");
		}
		leMenu.add("Liste des Annonces");
		leMenu.add("Menu Bourse");
		leMenu.add("Menu Principal");
	}

	@Override
	public int fenetreSuivante(int choix) {
		int rep = -1;
		if (ann.isPropreAnnonce(Controleur.utilisateurCourant)
				&& !Controleur.utilisateurCourant.isSalarie()) {
			switch (choix) {
			case 0:
				Controleur.menus[MODIFIER_ANNONCE] = new ModifierAnnonce(ann);
				rep = MODIFIER_ANNONCE;
				break;
			case 1:
				Controleur.menus[LISTE_DES_ANNONCES] = new ListeAnnonce();
				rep = LISTE_DES_ANNONCES;
				break;
			case 2:
				rep = MENU_BOURSE;
				break;
			case 3:
				rep = MENU_PRINCIPAL;
				break;
			}
		}
		if (!ann.isPropreAnnonce(Controleur.utilisateurCourant)
				&& Controleur.utilisateurCourant.isSalarie()) {
			switch (choix) {
			case 0:
				Controleur.menus[CONFIRMER_SUPPRIMER_ANNONCE] = new SupprimerAnnonce(
						ann);
				rep = CONFIRMER_SUPPRIMER_ANNONCE;
				break;
			case 1:
				Controleur.menus[LISTE_DES_ANNONCES] = new ListeAnnonce();
				rep = LISTE_DES_ANNONCES;
				break;
			case 2:
				rep = MENU_BOURSE;
				break;
			case 3:
				rep = MENU_PRINCIPAL;
				break;
			}
		}
		if (ann.isPropreAnnonce(Controleur.utilisateurCourant)
				&& Controleur.utilisateurCourant.isSalarie()) {
			switch (choix) {
			case 0:
				Controleur.menus[MODIFIER_ANNONCE] = new ModifierAnnonce(ann);
				rep = MODIFIER_ANNONCE;
				break;
			case 1:
				Controleur.menus[CONFIRMER_SUPPRIMER_ANNONCE] = new SupprimerAnnonce(
						ann);
				rep = CONFIRMER_SUPPRIMER_ANNONCE;
				break;
			case 2:
				rep = LISTE_DES_ANNONCES;
				break;
			case 3:
				rep = MENU_BOURSE;
				break;
			case 4:
				rep = MENU_PRINCIPAL;
				break;
			}
		}
		if (!ann.isPropreAnnonce(Controleur.utilisateurCourant)
				&& !Controleur.utilisateurCourant.isSalarie()) {
			switch (choix) {
			case 0:
				rep = LISTE_DES_ANNONCES;
				break;
			case 1:
				rep = MENU_BOURSE;
				break;
			case 2:
				rep = MENU_PRINCIPAL;
				break;
			}
		}

		return rep;
	}

	@Override
	public void afficher() {
		afficherSaut();
		System.out.println(ann);
		afficherErreur();
		afficherMini(nomMenu);
	}

}
